The present invention relates generally to computer processing systems, and more specifically, to a metadata previous write queue associated with a metadata store in a processor.
A computer program that is executed by a processor in a computing system may be broken down into a series of operations. A pipeline architecture of the processor comprises a plurality of stages, and the operations proceed through the various stages of the pipeline during execution. In order to assist a processor pipeline in the execution of a computer program so that the execution may be relatively fast and efficient, metadata regarding various operations, such as instructions or data fetches, may be stored in a metadata store that is associated with the processor. The metadata may include, but is not limited to, data predicting the direction of a branch, data regarding the dependency between two instructions, or may relate to a data fetch, and may be indexed in the metadata store based on an address associated with the metadata. Subsequent executions of the same operation may produce identical instances of metadata. It is preferred to not write any particular instance of metadata into the metadata store more than once. While writing the same metadata into multiple sets in the metadata store may not be a data integrity concern, overall performance of the microprocessor may be reduced by the presence of duplicate entries in the metadata store, as other unique entries that would further assist in program performance may be displaced.
It may be relatively time-consuming and/or power consuming to search the metadata store to determine if a given metadata entry is already in the metadata store prior to writing the metadata entry into the metadata store. Therefore, in order to prevent duplicate metadata store entries, an operation may have a metadata marking, which indicates that a metadata entry already exists in the metadata store for the particular operation. Additionally, a previous write queue (PWQ) may be used to track the most recent entries that were written into in the metadata store. When a new entry is ready to be written into the metadata store, the new entry may be compared to the metadata PWQ, and, if there is a valid match for the address associated with the operation in the metadata PWQ, it is determined that the new entry is already in the metadata store and does not need to be written into the metadata store again.